package main

import "sort"

func minimumSize(nums []int, maxOperations int) int {
	// 次数越多，开销越小
	// 最大开销是 nums 中的最大值
	sort.Ints(nums)
	return sort.Search(nums[len(nums)-1], func(cost0 int) bool {
		// 判断能否在 maxOpertiaons 以内实现开销小于 cost0
		operationNum := 0
		var nums2 []int
		nums2 = append(nums2, nums...) // copy
		for i := 0; i < len(nums2); i++ {
			// 将袋子 i 中多余的球移动到下一个袋子
			if nums2[i] > cost0 {
				operationNum++
				nums2 = append(nums2, nums2[i] - cost0)
				nums2[i] = cost0
			}
		}
		return operationNum <= maxOperations
	})
}

func main() {
	res := minimumSize([]int{9}, 2)
	println(res)
}
